Termination w.r.t. Q of the following Term Rewriting System could be proven:

Q restricted rewrite system:
The TRS R consists of the following rules:

sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(cons(0, x), y) → sum(x, y)
sum(nil, y) → y
weight(cons(n, cons(m, x))) → weight(sum(cons(n, cons(m, x)), cons(0, x)))
weight(cons(n, nil)) → n

Q is empty.


QTRS
  ↳ Overlay + Local Confluence

Q restricted rewrite system:
The TRS R consists of the following rules:

sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(cons(0, x), y) → sum(x, y)
sum(nil, y) → y
weight(cons(n, cons(m, x))) → weight(sum(cons(n, cons(m, x)), cons(0, x)))
weight(cons(n, nil)) → n

Q is empty.

The TRS is overlay and locally confluent. By [19] we can switch to innermost.

↳ QTRS
  ↳ Overlay + Local Confluence
QTRS
      ↳ DependencyPairsProof

Q restricted rewrite system:
The TRS R consists of the following rules:

sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(cons(0, x), y) → sum(x, y)
sum(nil, y) → y
weight(cons(n, cons(m, x))) → weight(sum(cons(n, cons(m, x)), cons(0, x)))
weight(cons(n, nil)) → n

The set Q consists of the following terms:

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)
weight(cons(x0, cons(x1, x2)))
weight(cons(x0, nil))


Using Dependency Pairs [1,15] we result in the following initial DP problem:
Q DP problem:
The TRS P consists of the following rules:

WEIGHT(cons(n, cons(m, x))) → WEIGHT(sum(cons(n, cons(m, x)), cons(0, x)))
SUM(cons(0, x), y) → SUM(x, y)
SUM(cons(s(n), x), cons(m, y)) → SUM(cons(n, x), cons(s(m), y))
WEIGHT(cons(n, cons(m, x))) → SUM(cons(n, cons(m, x)), cons(0, x))

The TRS R consists of the following rules:

sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(cons(0, x), y) → sum(x, y)
sum(nil, y) → y
weight(cons(n, cons(m, x))) → weight(sum(cons(n, cons(m, x)), cons(0, x)))
weight(cons(n, nil)) → n

The set Q consists of the following terms:

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)
weight(cons(x0, cons(x1, x2)))
weight(cons(x0, nil))

We have to consider all minimal (P,Q,R)-chains.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
QDP
          ↳ DependencyGraphProof

Q DP problem:
The TRS P consists of the following rules:

WEIGHT(cons(n, cons(m, x))) → WEIGHT(sum(cons(n, cons(m, x)), cons(0, x)))
SUM(cons(0, x), y) → SUM(x, y)
SUM(cons(s(n), x), cons(m, y)) → SUM(cons(n, x), cons(s(m), y))
WEIGHT(cons(n, cons(m, x))) → SUM(cons(n, cons(m, x)), cons(0, x))

The TRS R consists of the following rules:

sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(cons(0, x), y) → sum(x, y)
sum(nil, y) → y
weight(cons(n, cons(m, x))) → weight(sum(cons(n, cons(m, x)), cons(0, x)))
weight(cons(n, nil)) → n

The set Q consists of the following terms:

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)
weight(cons(x0, cons(x1, x2)))
weight(cons(x0, nil))

We have to consider all minimal (P,Q,R)-chains.
The approximation of the Dependency Graph [15,17,22] contains 2 SCCs with 1 less node.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
QDP
                ↳ UsableRulesProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

SUM(cons(0, x), y) → SUM(x, y)
SUM(cons(s(n), x), cons(m, y)) → SUM(cons(n, x), cons(s(m), y))

The TRS R consists of the following rules:

sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(cons(0, x), y) → sum(x, y)
sum(nil, y) → y
weight(cons(n, cons(m, x))) → weight(sum(cons(n, cons(m, x)), cons(0, x)))
weight(cons(n, nil)) → n

The set Q consists of the following terms:

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)
weight(cons(x0, cons(x1, x2)))
weight(cons(x0, nil))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

SUM(cons(0, x), y) → SUM(x, y)
SUM(cons(s(n), x), cons(m, y)) → SUM(cons(n, x), cons(s(m), y))

R is empty.
The set Q consists of the following terms:

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)
weight(cons(x0, cons(x1, x2)))
weight(cons(x0, nil))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)
weight(cons(x0, cons(x1, x2)))
weight(cons(x0, nil))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ UsableRulesReductionPairsProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

SUM(cons(0, x), y) → SUM(x, y)
SUM(cons(s(n), x), cons(m, y)) → SUM(cons(n, x), cons(s(m), y))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the usable rules with reduction pair processor [15] with a polynomial ordering [25], all dependency pairs and the corresponding usable rules [17] can be oriented non-strictly. All non-usable rules are removed, and those dependency pairs and usable rules that have been oriented strictly or contain non-usable symbols in their left-hand side are removed as well.

The following dependency pairs can be deleted:

SUM(cons(0, x), y) → SUM(x, y)
No rules are removed from R.

Used ordering: POLO with Polynomial interpretation [25]:

POL(0) = 0   
POL(SUM(x1, x2)) = x1 + 2·x2   
POL(cons(x1, x2)) = 2·x1 + 2·x2   
POL(s(x1)) = x1   



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ UsableRulesReductionPairsProof
QDP
                            ↳ RuleRemovalProof
              ↳ QDP

Q DP problem:
The TRS P consists of the following rules:

SUM(cons(s(n), x), cons(m, y)) → SUM(cons(n, x), cons(s(m), y))

R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
By using the rule removal processor [15] with the following polynomial ordering [25], at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

SUM(cons(s(n), x), cons(m, y)) → SUM(cons(n, x), cons(s(m), y))


Used ordering: POLO with Polynomial interpretation [25]:

POL(SUM(x1, x2)) = 2·x1 + x2   
POL(cons(x1, x2)) = 2·x1 + x2   
POL(s(x1)) = 2 + x1   



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ UsableRulesReductionPairsProof
                          ↳ QDP
                            ↳ RuleRemovalProof
QDP
                                ↳ PisEmptyProof
              ↳ QDP

Q DP problem:
P is empty.
R is empty.
Q is empty.
We have to consider all minimal (P,Q,R)-chains.
The TRS P is empty. Hence, there is no (P,Q,R) chain.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
QDP
                ↳ UsableRulesProof

Q DP problem:
The TRS P consists of the following rules:

WEIGHT(cons(n, cons(m, x))) → WEIGHT(sum(cons(n, cons(m, x)), cons(0, x)))

The TRS R consists of the following rules:

sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(cons(0, x), y) → sum(x, y)
sum(nil, y) → y
weight(cons(n, cons(m, x))) → weight(sum(cons(n, cons(m, x)), cons(0, x)))
weight(cons(n, nil)) → n

The set Q consists of the following terms:

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)
weight(cons(x0, cons(x1, x2)))
weight(cons(x0, nil))

We have to consider all minimal (P,Q,R)-chains.
As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [15] we can delete all non-usable rules [17] from R.

↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
QDP
                    ↳ QReductionProof

Q DP problem:
The TRS P consists of the following rules:

WEIGHT(cons(n, cons(m, x))) → WEIGHT(sum(cons(n, cons(m, x)), cons(0, x)))

The TRS R consists of the following rules:

sum(cons(0, x), y) → sum(x, y)
sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(nil, y) → y

The set Q consists of the following terms:

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)
weight(cons(x0, cons(x1, x2)))
weight(cons(x0, nil))

We have to consider all minimal (P,Q,R)-chains.
We deleted the following terms from Q as each root-symbol of these terms does neither occur in P nor in R.

weight(cons(x0, cons(x1, x2)))
weight(cons(x0, nil))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
QDP
                        ↳ QDPOrderProof

Q DP problem:
The TRS P consists of the following rules:

WEIGHT(cons(n, cons(m, x))) → WEIGHT(sum(cons(n, cons(m, x)), cons(0, x)))

The TRS R consists of the following rules:

sum(cons(0, x), y) → sum(x, y)
sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(nil, y) → y

The set Q consists of the following terms:

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)

We have to consider all minimal (P,Q,R)-chains.
We use the reduction pair processor [15].


The following pairs can be oriented strictly and are deleted.


WEIGHT(cons(n, cons(m, x))) → WEIGHT(sum(cons(n, cons(m, x)), cons(0, x)))
The remaining pairs can at least be oriented weakly.
none
Used ordering: Polynomial interpretation with max and min functions [25]:

POL(0) = 0   
POL(WEIGHT(x1)) = x1   
POL(cons(x1, x2)) = 1 + x1 + x2   
POL(nil) = 0   
POL(s(x1)) = x1   
POL(sum(x1, x2)) = x2   

The following usable rules [17] were oriented:

sum(nil, y) → y
sum(cons(0, x), y) → sum(x, y)
sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))



↳ QTRS
  ↳ Overlay + Local Confluence
    ↳ QTRS
      ↳ DependencyPairsProof
        ↳ QDP
          ↳ DependencyGraphProof
            ↳ AND
              ↳ QDP
              ↳ QDP
                ↳ UsableRulesProof
                  ↳ QDP
                    ↳ QReductionProof
                      ↳ QDP
                        ↳ QDPOrderProof
QDP
                            ↳ PisEmptyProof

Q DP problem:
P is empty.
The TRS R consists of the following rules:

sum(cons(0, x), y) → sum(x, y)
sum(cons(s(n), x), cons(m, y)) → sum(cons(n, x), cons(s(m), y))
sum(nil, y) → y

The set Q consists of the following terms:

sum(cons(s(x0), x1), cons(x2, x3))
sum(cons(0, x0), x1)
sum(nil, x0)

We have to consider all minimal (P,Q,R)-chains.
The TRS P is empty. Hence, there is no (P,Q,R) chain.